import { defineStore } from "pinia"
import { ref, computed } from "vue"

export const userStore = defineStore('userStore', () => {
    // type UserInfo = {
    //     [key: string]: string | number | Object | undefined
    //     username: string
    //     _id?: number
    //     role: number
    //     gender: number
    //     introduction: string
    //     avatar: string
    //     file: Object
    // }

    // 持久化处理
    let userinfo: any = computed({
        get() {
            const storedUserData = localStorage.getItem('userStore');
            if (storedUserData !== null) {
                try {
                    // console.log('getVal');
                    // console.log(JSON.parse(storedUserData));
                    
                    return JSON.parse(storedUserData);
                } catch (error) {
                    console.error('无法解析存储的用户数据:', error);
                    userinfo = {};
                }
            } else {
                console.log('localStorage 中没有存储的用户数据');
                return {};
            }
        },
        set(value) {
            // console.log('setVal');
            // console.log(value);
            localStorage.setItem('userStore', JSON.stringify(value))
        }
    })

    let tempAvatar = ref({
        avatar: userinfo.avatar,
        file: userinfo.avatar
    })

    const changeTempAvatar = (data: any) => {
        tempAvatar.value.avatar = data.avatar
        tempAvatar.value.file = data.file
    }

    return {
        userinfo,
        tempAvatar,
        changeTempAvatar
    }
},
)